<?php

namespace App\Api\PhoneCheck;

/**
 * https://docs.qq.com/doc/DRUlEamNJWFFhVmVR
 */

use Monolog\Logger;
use Monolog\Formatter\LineFormatter;
use Monolog\Handler\RotatingFileHandler;
use Illuminate\Support\Facades\DB;
use GuzzleHttp\Client;
use GuzzleHttp\Pool;
use GuzzleHttp\Psr7\Request as req;
use Illuminate\Support\Facades\Cache;
use Carbon\Carbon;


class TransferPhone
{
    private $log;
    public function __construct()
    {
        ini_set('max_execution_time', 300);
        $this->log = new Logger('TransferBackApi');
        $this->log->pushHandler(
            (new RotatingFileHandler(storage_path('/logs/TransferBackApi.log'), 14, Logger::DEBUG, true, 0777))->setFormatter(new LineFormatter(null, null, true, true))
        );
    }
    // 统一调用接口 也就是 所有的订单的下单接口 都是从这个地方下单的 
    public function __call($name, $args)
    {
        // $this->log->info('方法名称' . $name . '参数' . json_encode($args));
        //1: 查询订单的通道
        // 调用方法 如果失败了 返回什么信息 如果成功了 返回什么信息 如果失败 直接就都返回空 如果成功就是
        // 直接将第三方的数据 返回或者处理
        // var_dump($name);
        if (!empty($args[0])) {
            $args = $args[0];
        }
        $flag = true;
        if ($flag) {
            // var_dump($args);
            $obj = new $args['path']();
            if (method_exists($obj, $name)) {
                $res = $obj->$name($args);
                $this->log->info('提交返回信息方法名称' . $name . '参数' . json_encode($args) . '返回信息:' . json_encode($res));
                if (!empty($orders)) {
                    // Cache::put($orders . '_isTransfer', 0, Carbon::now()->addMinutes(5));
                }
                return $res;
            }
            $msg = '该方法不存在,请联系管理员';
        }
        $this->log->info('未提交返回信息方法名称' . $name . '参数' . json_encode($args) . '返回信息:' . $msg);
        if (!empty($orders)) {
            // Cache::put($orders . '_isTransfer', 0, Carbon::now()->addMinutes(5));
        }
        return [
            'code' => 100,
            'msg' => $msg,
            'data' => [
                'msg' => $msg
            ]
        ];
    }
}
